Cryptographic devices and methods for encoding-free encryption on elliptic curves

ABSTRACT

Encoding-free encryption on elliptic curves is obtained by a device having a processor choosing an integer r∈ /q ; computing in E(   p ) the a first point C 1 =[r]P and a second point C 2 =[r]Y, wherein E is an elliptic curve defined over    p , P∈E(   p ) is a point of prime order q, Y=[s]P∈E(   p ) is an encryption key for an integer s∈ /q ; computing the class β of Ψ(C 2 ); computing a first value c 2  by performing an elementary arithmetic operation modulo p between the message m∈ /p  and the class β; combining the first point C 1  and the first value c 2  to obtain the ciphertext (C 1 , c 2 ); and outputting the ciphertext (C 1 , c 2 ). Decryption of a ciphertext (C 1 , c 2 ) comprising a first point C 1  and a first value c 2  to obtain a message m∈ /p , is performed by multiplying a decryption key s and the first point C 1  to obtain a second point P=(x,y)∈E(   p ); calculating Ψ(P)∈E( /p 2   ) to obtain a third point; performing an elementary arithmetic operation modulo p between the first value c 2  and the class of the third point to obtain the message m; and outputting the message m.

TECHNICAL FIELD

The present invention relates generally to cryptography, and in particular to point-encoding-free encryption.

BACKGROUND

This section is intended to introduce the reader to various aspects of art, which may be related to various aspects of the present invention that are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.

The classical ElGamal encryption scheme is described in Taher ElGamal. A public key cryptosystem and a signature scheme based on discrete logarithms. IEEE Transactions on Information Theory, 31(4):469-472, 1985. It works in any finite group

, in which computation of discrete logarithms is assumed to be intractable. In order to avoid sub-group attacks using the Pohlig-Hellman algorithm [see Stephen C. Pohlig and Martin E. Hellman. An improved algorithm for computing logarithms over GF(p) and its cryptographic significance. IEEE Transactions on Information Theory, 24(1):106-110, 1978.], the underlying group is usually restricted to a prime-order group

=

g

. In the following, q denotes the order of

.

The public (‘encryption’) key is given by y=g^(s)∈

for some randomly chosen s∈

/q

while the private (decryption') key is s. The message space is

. The encryption of a message m∈

is given by the pair (c₁, c₂) where

c₁=g^(r) and c₂=my^(r)

for a random integer r∈

/q

. Given the ciphertext (c₁, c₂), message m is then recovered using secret key s as

m=c ₂ /c ₁ ^(s)

ElGamal encryption may be applied to elliptic curves over a finite field. Let

be a finite field of characteristic p≠2,3. The ring of dual numbers

is

[ε] with ε²=0. Consider the elliptic curve E over

[ε] given by the Weierstraβ equation

E:y ² =x ³ +ax+b

with a,b∈

[ε] and 4a³+27b²≠0. The set of points (x, y)∈

[ε]×

[ε] satisfying this equation together with the points at infinity, O_(k)=(kε:1:0) with k∈

[ε], form an Abelian group under the chord-and-tangent rule with O(:=O₀) as neutral element. Explicit addition formulae for the chord-and-tangent rule are provided in Steven Galbraith. Elliptic curve Paillier schemes. Journal of Cryptology, volume 15, number 2, pages 129-138, 2002. This group is denoted by E(

[ε]) and its order by # E(

[ε]). Further, letting a=a₀+a₁ε and b=b₀+b₁ε, the finite points (x₀+x₁ε, y₀+y₁ε) of E(

[ε]) satisfy the following system of equations over

(cf. Definition 3.3 of Marie Virat. A cryptosystem “à la” ElGamal on an elliptic curve over

_(p)[ε]. In C. Wolf, S. Lucks, and P. -W. Yau, editors, Western European Workshop on Research in Cryptology (WEWoRC 2005), volume 74 of Lecture Notes in Informatics, pages 32-44. Gesellschaft für Informatik e.V., 2005.):

$\quad\left\{ \begin{matrix} {y_{0}^{2} = {x_{0}^{3} + {a_{0}x_{0}} + b_{0}}} \\ {{\left( {2y_{0}} \right)y_{1}} = {{\left( {{3x_{0}^{2}} + a_{0}} \right)x_{1}} + {a_{1}x_{0}} + b_{1}}} \end{matrix} \right.$

However, when applying ElGamal encryption to such an elliptic curve, it is required to express the plaintext message m as a point on the elliptic curve [see section 6.4 of Lawrence C. Washington.Elliptic Curves, Number Theory and Cryptography. Discrete Mathematics and its Applications. Chapman & Hall/CRC, 2nd edition, 2008.]. To get around this requirement, Virat proposed in the mentioned paper a new elliptic curve cryptosystem. The idea consists in working with an elliptic curve over the ring

_(p)[ε], i.e. the ring of dual numbers over the prime field

_(p) with p>3. Virat's cryptosystem can be described as follows.

Let E be an elliptic curve over

_(p)[ε] as per the Weierstrafl equation and let

=

{circumflex over (P)}

⊂ E (

_(p)[ε]) be a subgroup of order pq for some prime q≠p. The public encryption key is Y=[sp]{circumflex over (P)} for some random integer s∈

/q

and the private decryption key is s. The message space is

_(p) and the encryption of a message m∈

_(p) is given by:

1. Choose a random integer r∈

/qz,

;

2. Choose a random finite point (x₀, y₀)∈E(

_(p));

3. Define {circumflex over (M)}=(x₀+mε, y₀+y₁ε) where y₁ is the unique solution in

_(p) such that {circumflex over (M)}∈E(

_(p)[ε]);

4. Compute the points C₁=[rp]{circumflex over (P)} and Ĉ₂=[r]Y+{circumflex over (M)}; and

5. Output the ciphertext (C₁, Ĉ₂).

The decryption of (C₁, Ĉ₂) is obtained as {circumflex over (M)}=Ĉ₂−[s]C₁ using secret key s which in turn yields the value of m.

The description appears to indicate that the cryptosystem has a ciphertext expansion ratio of 8÷1, which is not completely true. As shown in the next proposition, when the curve parameters a, b∈

are in

_(p), it turns out that C₁ is an element of E(

_(p)); moreover, the second part of the ciphertext, Ĉ₂ can be represented as a pair (C₂, k). This leads to a ciphertext expansion ratio of 5÷1.

Proposition 1. Using the previous notations, let E(

[ε]) be an elliptic curve as per the Weierstraβ equation with curve parameters a, b∈

. Then for every finite point {circumflex over (P)}=(x₀+x₁ε, y₀+y₁ε)∈E(

[ε]) there exists a unique k∈

such that

{circumflex over (P)}=P+O _(k)

with

$P = {{\left( {x_{0},y_{0}} \right) \in {{E()}\mspace{14mu} {and}\mspace{14mu} k}} = \left\{ \begin{matrix} {- \frac{x_{1}}{2y_{0}}} & {{{if}\mspace{14mu} y_{0}} \neq 0} \\ {- \frac{y_{1}}{{3x_{0}^{2}} + a}} & {{{if}\mspace{14mu} y_{0}} = 0} \end{matrix} \right.}$

Note that in Proposition 1, if y₀=0 then it is not possible that 3y₀ ²+a=0 as otherwise the point (x₀ , y₀) would be singular, contradicting that E(

) is an elliptic curve.

It will be appreciated that Virat's cryptosystem has a number of disadvantages. First it requires the generation of a random point (x₀ , y₀)∈E(

_(p)), which either requires computation of Legendre symbols or a point multiplication in E(

_(p)). Second its ciphertext expansion ratio is at least 5÷1 (while ElGamal's ciphertext expansion ratio over E(

_(p)) is 4÷1), which is particularly damaging for elliptic curve cryptosystems as they are primarily designed to reduce the bandwidth. Finally, the security of the scheme is rather weak: it is only shown to be one-way and in particular it lacks indistinguishable encryptions.

It will thus be appreciated that it is desired to have a cryptosystem that overcomes at least some of the disadvantages of Virat's cryptosystem. The present invention provides such a cryptosystem.

SUMMARY

In a first aspect, the invention is directed to a device for encryption of a message m∈

/p

to obtain a ciphertext. The device comprises a processor configured to compute in E(

_(p)) a first point C₁=[r₁]P and a second point C₂=[r₂]Y, wherein r₁ and r₂ are integers derived from an integer r∈

/q∵, E is an elliptic curve defined over

_(p), P∈E (

_(p)) is a point of finite order q, Y=[s]P∈E(

_(p)) is an encryption key for an integer s∈

/q

; compute the class β of Ψ(C₂), where Ψ is a mapping function that maps points of E(

_(p)) onto points of E(

/p²

); compute a first value c₂ by performing an elementary arithmetic operation modulo p between the message m and the class β; combine the first point C₁ and the first value c₂ to obtain the ciphertext (C₁, c₂); and output the ciphertext (C₁, c₂).

In a first embodiment, Ψ(C₂) is obtained by: calculating

${{\Delta \left( C_{2} \right)} = \frac{\left( {x^{3} + {ax} + b - y^{2}} \right){mod}\; p^{2}}{p}},$

wherein (x,y) are coordinates of C₂; calculating

${{\psi \left( C_{2} \right)} = {\frac{\Delta \left( C_{2} \right)}{2y}{mod}\; p}};$

and mapping (x, y)

(x, y+ψ(C₂)p).

In a second embodiment, q is prime.

In a third embodiment, r₁=r₂.

In a second aspect, the invention is directed to a device for decryption of a ciphertext (C₁, c₂) comprising a first point C₁ and a first value c₂ to obtain a message m∈

/p

. The device comprises a processor configured to multiply a decryption key s and the first point C₁ to obtain a second point P=(x, y)∈E (

_(p)); map P onto a third point in E(

/p²

) using a mapping function IP that maps points of E(

_(p)) onto points of E(

/p²

); perform an elementary arithmetic operation modulo p between the first value c₂ and the class of the third point to obtain the message m; and output the message m.

In a first embodiment, the mapping function Ψ maps points of E(

_(p)) onto points of E(

/p²

) by: calculating

${{\Delta (P)} = \frac{\left( {x^{3} + {ax} + b - y^{2}} \right){mod}\; p^{2}}{p}},$

wherein (x,y) are coordinates of a point P; calculating

${{\psi (P)} = {\frac{\Delta (P)}{2y}{mod}\; p}};$

and mapping (x,y)

(x, y+ψ(P)_(P)).

In a second embodiment, q is prime.

In a third aspect, the invention is directed to a method of encryption of a message m∈

/p

to obtain a ciphertext. A processor in a device computes in E(

_(p)) a first point C₁=[r₁]P and a second point C₂=[r₂]Y, wherein r₁ and r₂ are integers derived from an integer r∈

/q

, E is an elliptic curve defined over

_(p), P∈E (

_(p)) is a point of finite order q, Y=[s]P∈E (

_(p)) is an encryption key for an integer s∈

/q

; computes the class β of Ψ(C₂), where Ψ is a mapping function that maps points of E(

_(p)) onto points of E(

/p²

); computes a first value c₂ by performing an elementary arithmetic operation modulo p between the message m and the class β; combines the first point C₁ and the first value c₂ to obtain the ciphertext (C₁, c₂); and outputs the ciphertext (C₁, c₂).

In a first embodiment, Ψ(C₂) is obtained by: calculating

${{\Delta \left( C_{2} \right)} = \frac{\left( {x^{3} + {ax} + b - y^{2}} \right){mod}\; p^{2}}{p}},$

wherein (x,y) are coordinates of C₂; calculating

${{\psi \left( C_{2} \right)} = {\frac{\Delta \left( C_{2} \right)}{2y}\mspace{14mu} {mod}{\mspace{11mu} \;}p}};$

and mapping (x, y)

(x, y+ψ(C₂)p).

In a second embodiment, q is prime.

In a third embodiment, r₁=r₂.

In a fourth aspect, the invention is directed to a method of decryption of a ciphertext (C₁, c₂) comprising a first point C₁ and a first value c₂ to obtain a message m∈

/p

. A processor of a device multiplies a decryption key s and the first point C₁ to obtain a second point P=(x,y)∈E(

_(p)); maps P onto a third point in E(

/pp²

) using a mapping function IP that maps points of E(

_(p)) onto points of E(

/p²

); performs an elementary arithmetic operation modulo p between the first value c₂ and the class of the third point to obtain the message m; and outputs the message m.

In a first embodiment, the mapping function Ψ maps points E(

_(p)) onto points of E(

/p²

) by: calculating

${{\Delta (P)} = \frac{\left( {x^{3} + {ax} + b - y^{2}} \right)\mspace{14mu} {mod}\mspace{14mu} p^{2}}{p}},$

wherein (x,y) are coordinates of a point P; calculating

${{\psi (P)} = {\frac{\Delta (P)}{2y}\mspace{14mu} {mod}\mspace{14mu} p}};$

and mapping (x, y)

(x,y+ψ(P)p).

BRIEF DESCRIPTION OF DRAWINGS

Preferred features of the present invention will now be described, by way of non-limiting example, with reference to the accompanying drawings, in which:

FIG. 1 illustrates a method for encoding-free encryption on elliptic curves and subsequent decryption; and

FIG. 2 illustrates a system for encoding-free encryption on elliptic curves according to a preferred embodiment of the invention.

DESCRIPTION OF EMBODIMENTS

A main idea of the present invention is to consider elliptic curves defined over the ring

/p²

rather than elliptic curves defined over the ring

_(p)[ε]. This allows the definition of a class function whereupon ElGamal-type cryptosystems are derived using the terminology of Benoit Chevallier-Mames, Pascal Paillier, and David Pointcheval. Encoding-free ElGamal encryption without random oracles. In M. Yung et al., editors, Public Key Cryptography—PKC 2006, volume 3958 of Lecture Notes in Computer Science, pages 91-104. Springer, 2006.

Since

_(p)=

/p

∈

/p²

, it is possible to view an elliptic curve given by a Weierstraβ equation (with curve parameters a, b∈

_(p)) over the ring

/p²

. In order to deal with the points at infinity, the projected form Y²Z=X³+aXZ²+bZ³ is regarded. The set of points on this elliptic curve over

/p²

is denoted by E(

/p²

). The subset of points that reduce modulo p to O=(0:1:0) is denoted by E₁(

/p2

).

Proposition 2. Using these notations, E₁(

/p²

)={(ap:1:0)|0≦a≦p−1}.

The theory of formal groups (see e.g. Proposition IV.3.2 in Joseph H. Silverman. The Theory of Elliptic Curves. Volume 106 of Graduate Texts in Mathematics, Springer-Verlag, 1986.) teaches that E₁(

/p²

) is a group isomorphic to the additive group (

/p

)⁺:

Γ:E ₁(

/p ²

)

(

/p

) ⁺, (αp:1:0)

α.

Hence, the sum of two elements (α₁p :1:0) and (α₂p:1:0) in E₁(

/p²

) is given by (α₃p:1:0) with α₃=(α₁+α₂) mod p. This also implies that E₁(

/p²

) is a cyclic group of order p. Letting U=(p:1:0), E₁(

/p²7

)=

U

.

Given a finite point P=(x, y)∈E(

_(p)), the following definitions are made:

${\Delta (P)} = \frac{\left( {x^{3} + {ax} + b - y^{2}} \right)\mspace{14mu} {mod}\; p^{2}}{p}$ and ${\psi (P)} = {\frac{\Delta (P)}{2y}\mspace{14mu} {mod}\mspace{14mu} {p.}}$

This gives rise to the map:

${{\Psi:{E\left( _{p} \right)}}->{E\left( {{{\mathbb{Z}}/p^{2}}{\mathbb{Z}}} \right)}},\left\{ {\begin{matrix} \left. O\mapsto O \right. \\ \left. \left( {x,y} \right)\mapsto\left( {x,{y + {{\psi (P)}p}}} \right) \right. \end{matrix}.} \right.$

It is noted that there are many other suitable mapping functions that the skilled person could find, such as for example

${{\Psi:{E\left( _{p} \right)}}->{E\left( {{{\mathbb{Z}}/p^{2}}{\mathbb{Z}}} \right)}},\left\{ \begin{matrix} \left. O\mapsto O \right. \\ \left. \left( {x,y} \right)\mapsto\left( {{x + {Kp}},{y + {{\psi_{K}\left( {x,y} \right)}p}}} \right) \right. \end{matrix} \right.$

for any integer constant K, and where

${\psi_{K}\left( {x,y} \right)} = {\frac{\Delta_{K}\left( {x,y} \right)}{2y}\mspace{14mu} {mod}\mspace{14mu} p}$ and ${\Delta_{K}\left( {x,y} \right)} = {\frac{\left( {x^{3} + {3x^{2}{Kp}} + {ax} + {aKp} + b - y^{2}} \right)\mspace{14mu} {mod}\mspace{14mu} p^{2}}{p}.}$

It is assumed that E is not an anomalous curve (i.e. # E(

_(p))≠p). The order of point P∈E(

_(p)) is denoted q=ord_(E)(P). V is defined as V=[p]Ψ(P) and is clearly of order q.

Subgroup

=

P

⊂E(

_(p)) is of order q and subgroup

=

U,V

⊂E(

/p²

) is of order pq. Any element Q∈

can be uniquely written as:

Q=[β]U+[a]V for some α∈

/q

and β∈

/pβ.

Integer β is called the class of Q and written β=[[Q]]. The crucial observation is that Ψ(

)⊂

. As a consequence, the class of any element Q∈

is defined as [[Ψ(Q)]].

For the cryptosystem having a defined security parameter of the present invention, let E be an elliptic curve defined over

_(p) and let P∈E(

_(p)) be a point of large, i.e. exponential in the security parameter, finite order q. The public encryption key is Y=[s]P∈E (

_(p)) for some random integer s∈

/q

and the private decryption key is S. The message space is

/p

.

In a first preferred embodiment, the encryption of a message m∈

/p

is given by the following method:

1. Choose, S1, a random integer r∈

/q

;

2. Compute S2 in E(

_(p)) the points C₁=[r]P and C₂=[r]Y;

3. Compute S3β=[[Ψ(C₂)]]

4. Define S4 c₂=m+β (mod p);

5. Output S5 the ciphertext (C₁, c₂).

The decryption of (C₁, c₂) is obtained S6 as m=c₂ −[[Ψ([s]C₁)]] (mod p) using the secret key s.

The cryptosystem of the first preferred embodiment is additive. As

/p

is equipped with both addition and multiplication, it is possible to define a multiplicative cryptosystem by replacing Step 4 (i.e. S4) accordingly. Thus, in a second preferred embodiment, the encryption of a message m∈

/p

is given by the following method:

1. Choose a random integer r∈

/q

;

2. Compute in E(

_(p)) the points C₁=[r]P and C₂=[r]Y;

3. Compute β=[[Ψ(C₂)]]

4. Define c₂=m·β (mod p);

5. Output the ciphertext (C₁, c₂).

The decryption of (C₁, c₂) is obtained as m=c₂−[[Ψ([s]C₁)]] (mod p) using the secret key s.

It will be appreciated that various modifications are possible, such as using multiples of one or more variables that are compensated for further in the method. It is for example also possible to compute, in step 2, the two points C₁=[r₁]P and C₂=[r₂]Y, where r₁ and r₂ are derived in a predetermined manner from r (e.g. using additions or the aforementioned multiples and possibly rounding to integers, if necessary performed modulus a given value) so that there is a relation between them.

FIG. 2 illustrates an encryption device 100 and a decryption device 200 according to an embodiment of the invention. The devices 100, 200 each comprise at least one interface unit 110, 210 configured for communication, at least one processor (“processor”) 120, 220 and at least one memory 130, 230 configured for storing data, such as accumulators and intermediary calculation results. FIG. 2 also shows a first and a second computer program product (non-transitory storage medium) 140, 240 such as a CD-ROM or a DVD comprises stored instructions that, when executed by the processor 120, 220, respectively encrypt a message and decrypt a ciphertext according to the present invention.

It will thus be appreciated that the cryptoschemes of the present invention can enjoy the advantages of Virat's cryptosystem (i.e., no message encoding as points on elliptic curves) but without its disadvantages. Further, it can even improve the ciphertext expansion ratio compared to ElGamal's cryptosystem to only 3÷1 which can be further reduced to 2÷1 using a compressed representation for C₁. Second, they meet the standard IND-CPA (Indistinguishability under chosen-plaintext attack) security level in the standard model while Virat's cryptosystem only meets the OW-CPA (One-wayness under chosen-plaintext attack) security level. Third, the proposed cryptosystems are to some extent malleable. Fourth, encryption is very fast. In an on-line/off-line mode, the encryption of a message m only requires an addition modulo p.

Each feature disclosed in the description and (where appropriate) the claims and drawings may be provided independently or in any appropriate combination. Features described as being implemented in hardware may also be implemented in software, and vice versa. Reference numerals appearing in the claims are by way of illustration only and shall have no limiting effect on the scope of the claims. 

1. A device for encryption of a message m∈

/p

to obtain a ciphertext, the device comprising a processor configured to: compute in E(

_(p)) a first point C₁=[r₁]P and a second point C₂=[r₂]Y, wherein r₁ and r₂ are integers derived from an integer r∈

/q

, E is an elliptic curve defined over

_(p), P∈E (

_(p)) is a point of finite order q, Y=[s]P∈E(

_(p)) is an encryption key for an integer s∈

/q

; compute the class β of Ψ(C₂), where IP is a mapping function that maps points of E(

_(p)) onto points of E(

/p²

); compute a first value c₂ by performing an elementary arithmetic operation modulo p between the message m and the class β; combine the first point C₁ and the first value c₂ to obtain the ciphertext (C₁, c₂); and output the ciphertext (C₁, c₂).
 2. The device of claim 1, wherein Ψ(C₂) is obtained by: calculating ${{\Delta \left( C_{2} \right)} = \frac{\left( {x^{3} + {ax} + b - y^{2}} \right)\mspace{14mu} {mod}\mspace{14mu} p^{2}}{p}},$ wherein (x,y) are coordinates of C₂; calculating ${\psi \left( C_{2} \right)} = \frac{\Delta \left( C_{2} \right)}{2y}$ mod p; and mapping (x, y)

(x, y+ψ(C₂)p)
 3. The device of claim 1, wherein q is prime.
 4. The device of claim 1, wherein r₁=r₂.
 5. A device for decryption of a ciphertext (C₁, c₂) comprising a first point C₁ and a first value c₂ to obtain a message m∈

/p

, the device comprising a processor configured to: multiply a decryption key s and the first point C₁ to obtain a second point P=(x, y) ∈E(

_(p)); map P onto a third point in E(

/p²

) using a mapping function Ψ that maps points of E(

_(p)) onto points of E(

/p²7

); perform an elementary arithmetic operation modulo p between the first value c₂ and the class of the third point to obtain the message m; and output the message m.
 6. The device of claim 5, wherein the mapping function IP maps points of E(

_(p)) onto points of E(

/p²

) by: calculating ${{\Delta (P)} = \frac{\left( {x^{3} + {a\; x} + b - y^{2}} \right)\mspace{14mu} {mod}\mspace{14mu} p^{2}}{p}},$ wherein (x,y) are coordinates of a point P; calculating ${{\psi (P)} = {\frac{\Delta \; (P)}{2y}\mspace{14mu} {mod}\mspace{14mu} p}};$ and mapping (x, y)

(x,y+ψ(P)p).
 7. The device of claim 5, wherein q is prime.
 8. A method of encryption of a message m E ZipZ to obtain a ciphertext, the method comprising in a processor of a device, of: computing in E(

_(p)) a first point C₁=[r₁]P and a second point C₂=[r₂]Y, wherein r₁ and r₂ are integers derived from an integer r∈

/q

, E is an elliptic curve defined over

_(p), P∈E (

_(p)) is a point of finite order q, Y=[s]P∈E(

_(p)) is an encryption key for an integer s∈

/q

; computing the class β of Ψ(C₂), where Ψ is a mapping function that maps points of E(

_(p)) onto points of E(

/p²

); computing a first value c₂ by performing an elementary arithmetic operation modulo p between the message m and the class β; combining the first point C₁ and the first value c₂ to obtain the ciphertext (C₁, c₂); and outputting the ciphertext (C₁, c₂).
 9. The method of claim 8, wherein Ψ(C₂) is obtained by: calculating ${{\Delta \left( C_{2} \right)} = \frac{\left( {x^{3} + {a\; x} + b - y^{2}} \right)\mspace{14mu} {mod}\mspace{14mu} p^{2}}{p}},$ wherein (x,y) are coordinates of C₂; calculating ${{\psi \left( C_{2} \right)} = {\frac{\Delta \; \left( C_{2} \right)}{2y}\mspace{14mu} {mod}\mspace{14mu} p}};$ and mapping (x, y)

(x, y+ψ(C₂)p)
 10. The method of claim 8, wherein q is prime.
 11. The method of claim 8, wherein r₁=r₂.
 12. A method of decryption of a ciphertext (C₁, c₂) comprising a first point C₁ and a first value c₂ to obtain a message m∈

/p

, the method comprising in a processor of a device, of: multiplying a decryption key s and the first point C₁ to obtain a second point P=(x, y)∈E (

_(p)); mapping P onto a third point in E(

/p²

) using a mapping function IP that maps points of E (

_(p)) onto points of E (

/p²

); performing an elementary arithmetic operation modulo p between the first value c₂ and the class of third point to obtain the message m; and outputting the message m.
 13. The method of claim 12, wherein the mapping function IP maps points of E(

_(p)) onto points of E(

/p²

) by: calculating ${{\Delta (P)} = \frac{\left( {x^{3} + {ax} + b - y^{2}} \right)\mspace{14mu} {mod}\mspace{14mu} p^{2}}{p}},$ wherein (x,y) are coordinates of a point P; calculating ${{\psi (P)} = {\frac{\Delta (P)}{2y}\mspace{14mu} {mod}\mspace{14mu} p}};$ and mapping (x, y)

(x, y+ψ(P)p). 